package ilbunilcho.lol.model.champion;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Champion {
	String Name;
	String Title;
	String Portrait;
	String Description;
	
	double Damage;
	double DamagePerLevel;
	double Health;
	double HealthPerLevel;
	double Mana;
	double ManaPerLevel;
	double MoveSpeed;
	double Armor;
	double ArmorPerLevel;
	double SpellBlock;
	double SpellBlockPerLevel;
	double HealthRegen;
	double HealthRegenPerLevel;
	double ManaRegen;
	double ManaRegenPerLevel;
	
	RecommendedItems Classic;
	RecommendedItems Dominion;
	
	Ability AbilityBasic;
	Ability AbilityQ;
	Ability AbilityW;
	Ability AbilityE;
	Ability AbilityR;
	
	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}

	public String getTitle() {
		return Title;
	}

	public void setTitle(String title) {
		Title = title;
	}

	public String getPortrait() {
		return Portrait;
	}

	public void setPortrait(String portrait) {
		Portrait = portrait;
	}

	public String getDescription() {
		return Description;
	}

	public void setDescription(String description) {
		Description = description;
	}

	public double getDamage() {
		return Damage;
	}

	public void setDamage(double damage) {
		Damage = damage;
	}

	public double getDamagePerLevel() {
		return DamagePerLevel;
	}

	public void setDamagePerLevel(double damagePerLevel) {
		DamagePerLevel = damagePerLevel;
	}

	public double getHealth() {
		return Health;
	}

	public void setHealth(double health) {
		Health = health;
	}

	public double getHealthPerLevel() {
		return HealthPerLevel;
	}

	public void setHealthPerLevel(double healthPerLevel) {
		HealthPerLevel = healthPerLevel;
	}

	public double getMana() {
		return Mana;
	}

	public void setMana(double mana) {
		Mana = mana;
	}

	public double getManaPerLevel() {
		return ManaPerLevel;
	}

	public void setManaPerLevel(double manaPerLevel) {
		ManaPerLevel = manaPerLevel;
	}

	public double getMoveSpeed() {
		return MoveSpeed;
	}

	public void setMoveSpeed(double moveSpeed) {
		MoveSpeed = moveSpeed;
	}

	public double getArmor() {
		return Armor;
	}

	public void setArmor(double armor) {
		Armor = armor;
	}

	public double getArmorPerLevel() {
		return ArmorPerLevel;
	}

	public void setArmorPerLevel(double armorPerLevel) {
		ArmorPerLevel = armorPerLevel;
	}

	public double getSpellBlock() {
		return SpellBlock;
	}

	public void setSpellBlock(double spellBlock) {
		SpellBlock = spellBlock;
	}

	public double getSpellBlockPerLevel() {
		return SpellBlockPerLevel;
	}

	public void setSpellBlockPerLevel(double spellBlockPerLevel) {
		SpellBlockPerLevel = spellBlockPerLevel;
	}

	public double getHealthRegen() {
		return HealthRegen;
	}

	public void setHealthRegen(double healthRegen) {
		HealthRegen = healthRegen;
	}

	public double getHealthRegenPerLevel() {
		return HealthRegenPerLevel;
	}

	public void setHealthRegenPerLevel(double healthRegenPerLevel) {
		HealthRegenPerLevel = healthRegenPerLevel;
	}

	public double getManaRegen() {
		return ManaRegen;
	}

	public void setManaRegen(double manaRegen) {
		ManaRegen = manaRegen;
	}

	public double getManaRegenPerLevel() {
		return ManaRegenPerLevel;
	}

	public void setManaRegenPerLevel(double manaRegenPerLevel) {
		ManaRegenPerLevel = manaRegenPerLevel;
	}

	public RecommendedItems getClassic() {
		return Classic;
	}

	public void setClassic(RecommendedItems classic) {
		Classic = classic;
	}

	public RecommendedItems getDominion() {
		return Dominion;
	}

	public void setDominion(RecommendedItems dominion) {
		Dominion = dominion;
	}

	public Ability getBasic() {
		return AbilityBasic;
	}

	public void setAbilityBasic(Ability abilityBasic) {
		AbilityBasic = abilityBasic;
	}

	public Ability getAbilityQ() {
		return AbilityQ;
	}

	public void setAbilityQ(Ability abilityQ) {
		AbilityQ = abilityQ;
	}

	public Ability getAbilityW() {
		return AbilityW;
	}

	public void setAbilityW(Ability abilityW) {
		AbilityW = abilityW;
	}

	public Ability getAbilityE() {
		return AbilityE;
	}

	public void setAbilityE(Ability abilityE) {
		AbilityE = abilityE;
	}

	public Ability getAbilityR() {
		return AbilityR;
	}

	public void setAbilityR(Ability abilityR) {
		AbilityR = abilityR;
	}

	public static void main(String[] argv) {
		try {
			JAXBContext context = JAXBContext.newInstance(Champion.class);
			Marshaller m = context.createMarshaller();
			m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
			
			Champion champion = new Champion();
			champion.setName("아카리");
			champion.setDamage(123);
			champion.setDescription("hahah");
			champion.setArmor(222);
			champion.setArmorPerLevel(2234);
			
			Ability ability = new Ability();
			ability.setCost("cost");
			ability.setName("공격");
			champion.setAbilityBasic(ability);
			champion.setDamagePerLevel(444);
			m.marshal(champion, System.out);
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	}
}
